在前面我們嘗試設計一個 Mysql,這次我們來建立一個 Redis,當然你會懷疑為何要特別拿 Mysql 跟 Redis來實作講解Dockefile呢,其實是為了後續要在 Django 上一起實作給大家看,讓大家更了解Docker 使用的意義
在設計 Redis 的 Dcokerfile 之前,先想想看需求是什麼,這樣才能邊設計邊找資源
需求:
建立一個Dockerfile
FROM redis:latest
# 複製 redis.conf 檔案到容器中
COPY redis.conf /usr/local/etc/redis/redis.conf
RUN mkdir /home/redis/
RUN chmod 777 /home/redis/
# 執行 redis server 並且使用自訂的 redis.conf 檔案
CMD ["redis-server", "/usr/local/etc/redis/redis.conf"]
redis.conf
# Redis 7.0 配置文件
# 監聽的端口號
port 6379
# 監聽的 IP 地址
#bind 127.0.0.1
# 是否以守護進程模式運行
#daemonize yes
# 以哪個用戶身份運行 Redis 服務
user redis
# 密碼設置,設置密碼後需使用該密碼才能訪問 Redis 服務
requirepass *******
# 日誌文件的位置和名稱
logfile /home/redis/redis.log
# 持久化保存數據的方式,這裡使用RDB方式進行持久化,並設置了快照的保存頻率
#save 900 1
#save 300 10
#save 60 10000
# 使用AOF持久化方式時,每秒同步數據到磁盤的次數
# appendonly yes
# appendfsync everysec
# 設置最大連接數和最大客戶端數
#maxclients 10000
#maxmemory 2gb
# 限制內存使用的策略
# maxmemory-policy volatile-lru
建立Redis Image
docker build -t "Image Name" .
啟動Redis Container
docker run --name "Container Name" -p 6379:6379 -d "Image Name"
我們進入 Redis Container 查看是否與Dockerfile設計的一樣
docker exec -it "Container Name" bash
確認redis.confg是否跟我們當初在本機設計的redis.confg一樣
cat /usr/local/etc/redis/redis.conf
連線Redis
redis-cli
輸入Redis密碼
AUTH *****
這篇就不會太多實作圖片的證明,因為目的是讓菜鳥們能自己融會貫通一下,有自己思考的空間,總該要放手讓菜鳥自己去試試看吧